<template>
	<view>
		<view class="content" v-if="expressState==2">
			<view class="v-content" @click="showTab(1)" :style="'background-color:'+(current==1?'#FF6146':'#fff')"><text class="content-text"
				 :style="'color:'+(current==1?'#fff':'#FF6146')">商家配送</text></view>
			<view class="v-content" @click="showTab(2)" :style="'background-color:'+(current==2?'#FF6146':'#fff')"><text class="content-text"
				 :style="'color:'+(current==2?'#fff':'#FF6146')">到店自提</text></view>
		</view>
		<!-- 地址 -->
		<navigator url="/pages/address/address-list?source=1" class="address-section" v-if="current==1" style="margin-top: 1px;">
			<view class="order-content">
				<text class="yticon icon-shouhuodizhi"></text>
				<view class="cen">
					<view class="top" v-if="Object.keys(addressData).length!=0">
						<text class="name">{{addressData.name}}</text>
						<text class="mobile">{{addressData.mobile}}</text>
					</view>
					<view v-else style="padding-top: 0px;">
						<text style="font-size: 16px;">选择收货地址</text>
					</view>
					<text v-if="Object.keys(addressData).length!=0" class="address">{{addressData.address}} {{addressData.area}}</text>
				</view>
				<text class="yticon icon-you"></text>
			</view>

			<image class="a-bg" src=""></image>
		</navigator>
		<view class="yt-list" style="margin-top: 1px;" v-if="current==2">
			<view class="yt-list-cell b-b" @click="toGetUserInfo">
				<text class="cell-tit clamp">提货人</text>
				<text class="cell-tip active" v-if=" selfUserName==''">
					选择提货人
				</text>
				<text class="cell-tip" v-else>
					{{selfUserName + " " +selfUserMobile}}
				</text>
				<text class="cell-more wanjia wanjia-gengduo-d"></text>
			</view>
			<view class="yt-list-cell b-b" @click="toGetAddress">
				<text class="cell-tit clamp">提货地址</text>
				<text class="cell-tip active" v-if="selfgetAddress==''">选择提货地址</text>
				<text class="cell-tip" v-else>{{selfgetAddress + '' + selfgetAddressName}}</text>
			</view>
			<view class="yt-list-cell b-b" @click="toSelectTime">
				<text class="cell-tit clamp">提货时间</text>
				<text class="cell-tip active" v-if="selfgetTime==''">选择提货时间</text>
				<text class="cell-tip" v-else>{{selfgetTime}}</text>
			</view>
			<image class="a-bg2" src=""></image>

		</view>

		<view class="goods-section">
			<view class="g-header b-b">
				<image class="logo" style="display: none;"></image>
				<text class="name">商品</text>
			</view>
			<!-- 商品列表 -->
			<view class="g-item" v-for="(item,index) in goodsData" :key="index">
				<image :src="item.image"></image>
				<view class="right">
					<text class="title clamp">{{item.title}}</text>
					<text class="spec">{{item.attr_val}}</text>
					<view class="price-box">
						<text class="price">￥{{item.price}}</text>
						<text class="number">x {{item.number}}</text>
					</view>
				</view>
			</view>
		</view>

		<!-- 优惠明细 -->
		<view class="yt-list">
			<view class="yt-list-cell b-b" @click="toggleMask('show')" v-if="couponList.length>0">
				<view class="cell-icon">
					券
				</view>
				<text class="cell-tit clamp">优惠券</text>
				<text class="cell-tip active" v-if="selectedCoupon.couponUserId==undefined">
					选择优惠券
				</text>
				<text class="cell-tip active" v-else>
					{{selectedCoupon.data.name}}
				</text>
				<text class="cell-more wanjia wanjia-gengduo-d"></text>
			</view>
			<view class="yt-list-cell b-b" style="display: none;">
				<view class="cell-icon hb">
					减
				</view>
				<text class="cell-tit clamp">商家促销</text>
				<text class="cell-tip disabled">暂无可用优惠</text>
			</view>
		</view>
		<!-- 积分抵现 -->
		<view class="yt-list" v-if="showPointToMoney">
			<view class="yt-list-cell b-b">
				<text class="cell-tit clamp">积分抵现</text>
				<view class="cell-tip">{{totalPoint}}积分</view>
				<switch color="#FFCC33" style="transform:scale(0.7)" @change="switchChangePoint" />
			</view>
		</view>
		<!-- 金额明细 -->
		<view class="yt-list">
			<view class="yt-list-cell b-b">
				<text class="cell-tit clamp">商品金额</text>
				<text class="cell-tip">￥{{goodsPrice}}</text>
			</view>
			<view class="yt-list-cell b-b">
				<text class="cell-tit clamp">优惠金额</text>
				<text class="cell-tip red">-￥{{discountAmount}}</text>
			</view>
			<view class="yt-list-cell b-b" v-if="showUsePoint">
				<text class="cell-tit clamp">积分抵现</text>
				<text class="cell-tip red">-￥{{pointToMoney}}</text>
			</view>
			<view class="yt-list-cell b-b">
				<text class="cell-tit clamp">运费</text>
				<text class="cell-tip" v-if="current==1">{{showExpressValue}}</text>
				<text class="cell-tip" v-if="current==2">到店自提免运费</text>
			</view>
			<view class="yt-list-cell desc-cell">
				<text class="cell-tit clamp">备注</text>
				<input class="desc" type="text" v-model="desc" placeholder="请填写备注信息" placeholder-class="placeholder" />
			</view>
		</view>

		<!-- 底部 -->
		<view class="footer">
			<view class="price-content">
				<text>实付款</text>
				<text class="price-tip">￥</text>
				<text class="price">{{totalPrice}}</text>
			</view>
			<text class="submit" @click="submit" v-if="!hasSubmit">提交订单</text>
			<text class="submit" style="background-color: #f0f0f0" v-else>提交订单</text>
		</view>

		<!-- 优惠券面板 -->
		<view class="mask" :class="maskState===0 ? 'none' : maskState===1 ? 'show' : ''" @click="toggleMask">
			<view class="mask-content" @click.stop.prevent="stopPrevent">
				<!-- 优惠券页面，仿mt -->
				<view class="coupon-item" v-for="(item,index) in couponList" :key="index" @click="useCoupon(item)">
					<view class="con">
						<view class="left">
							<text class="title">{{item.data.name}}</text>
							<text class="time">有效期{{item.data.startDate}}~{{item.data.endDate}}</text>
						</view>
						<view class="right">
							<text class="price" v-if="item.data.type=='代金券'">{{item.data.reduceMoney}}元</text>
							<text class="price" v-else>{{item.data.discountLimit}}折</text>
							<text>满{{item.data.useReuire}}元可用</text>
						</view>

						<view class="circle l"></view>
						<view class="circle r"></view>
					</view>
					<text class="tips">点击立即使用</text>
				</view>
			</view>
		</view>

	</view>
</template>

<script>
	import {
		getAddressDataById
	} from '@/common/api/address.js'
	import myCloud from '@/common/util/cloud.js';
	import myConst from '@/common/util/const.js';
	import util from '@/common/util/util.js';
	import {reqPay} from '@/common/api/pay.js';
	import {
		getDataOne,getData,addPointListData
	} from '@/common/api/point.js'
	import {
		mapState
	} from 'vuex';
	import {
		getCouponUserDataById
	} from '@/common/api/coupon-user.js'
	import {
		getCouponDataById
	} from '@/common/api/coupon.js'
	import {
		getShippingTemplateDataById
	} from '@/common/api/shipping-template.js'
	import {
		addData
	} from '@/common/api/order.js'
	import { getSettingData } from '@/common/api/setting.js'
	export default {
		data() {
			return {
				current: 1,
				maskState: 0, //优惠券面板显示状态
				desc: '', //备注
				payType: 1, //1微信 2支付宝
				couponList: [],
				addressData: {},
				selfgetAddress: '',
				selfgetAddressName: '',
				selfUserName: '',
				selfUserMobile: '',
				selfgetStartTime: '',
				selfgetEndTime: '',
				selfgetTime: '',
				goodsData: [],
				totalPrice: 0,
				goodsPrice: 0,
				selectedCoupon: {},
				discountAmount: 0,
				expressState: 1,
				isOrder: true,
				showExpressValue: '免运费',
				totalExpress: 0,
				showPointToMoney: true,
				pointToMoney: 0, //总积分抵现
				usePointToMoney:0,  //使用了的积分抵现
				showUsePoint: false,
				totalPoint:0,
				onePoint:0,  //一个积分抵现多少
				sevenDaySend:0, //签到满7天赠送多少积分
				signInSend:0, //每次签到赠送多少积分
				toMoney:'关闭', // 积分抵现
				outTradeNo: '',
				delivery:'',
				hasSubmit:false
			}
		},
		onLoad(option) {
			//商品数据
			let data = JSON.parse(option.data);
			this.goodsData = data.goodsData;
			this.goodsPrice = data.totalPrice;
			this.totalPrice = data.totalPrice;
			this.getDefaultAddress();
			this.initCouponData();
			this.initSettingData()
			this.initData()
		},
		onShow() {
			this.toJudgeAddress(this.addressData.address)
		},
		computed: {
			...mapState(['hasLogin', 'userId'])
		},
		methods: {
			async initSettingData(){
				const res = await getSettingData({})
				if(res.length>0){
					this.delivery = res[0].data.delivery
					if (this.delivery.indexOf('快递发货')!=-1&&this.delivery.indexOf('到店自提')!=-1) { 
						this.current = 1;
						this.expressState = 2;
					}
					if (this.delivery.indexOf('快递发货')!=-1&&this.delivery.indexOf('到店自提')==-1) { 
						this.current = 1;
						this.expressState = 1;
					}
					if (this.delivery.indexOf('快递发货')==-1&&this.delivery.indexOf('到店自提')!=-1) {
						this.current = 2;
						this.expressState = 1;
					}
					if (this.delivery.indexOf('快递发货')==-1&&this.delivery.indexOf('到店自提')==-1) {
						this.current = 1;
						this.expressState = 1;
						this.$api.msg("商城暂不支持购买")
					}
				}
			},
			async initData() {
				const req = {
					userId: this.userId
				}
				const res = await getDataOne(req)
				if (res.length > 0) {
					this.totalPoint = res[0].point
				}
				const data = await getData(req)
				if (data.length > 0) {
					this.onePoint = data[0].data.onePoint
					this.sevenDaySend = data[0].data.sevenDaySend
					this.signInSend = data[0].data.signInSend
					this.toMoney = data[0].data.toMoney
					this.pointToMoney = this.onePoint*this.totalPoint
				}
			},
			async initCouponData() {
				const req = {
					userId: this.userId
				}
				const data = await getCouponUserDataById(req)
				if (data.length > 0) {
					for (var i = 0; i < data.length; i++) { //判断已领取的有效优惠券
						const d2 = {
							index: i,
							_id: data[i].couponId
						}
						const data2 = await getCouponDataById(d2)
						if (data2.data[0].startDateSt <= new Date().getTime() && data2.data[0].endDateSt >= new Date().getTime() &&
							data2.data[0].state == '开启' && parseFloat(data2.data[0].useReuire) <= parseFloat(this.goodsPrice)) {
							let tmp = {
								couponUserId: data[data2.index]._id,
								data: data2.data[0]
							}
							this.couponList.push(tmp)
						}
					}
				}
			},
			async getDefaultAddress() {
				const req = {
					userId: this.userId
				}
				const data = await getAddressDataById(req)
				if (data.length > 0) {
					this.addressList = data[0].data
					for (let i = 0; i < data[0].data.length; i++) {
						if (i == 0) {
							this.addressData = data[0].data[i];
						}
						if (data[0].data[i].default == true) {
							this.addressData = data[0].data[i];
						}
					}
					this.toJudgeAddress(this.addressData.address)
				}
			},
			//显示优惠券面板
			toggleMask(type) {
				let timer = type === 'show' ? 10 : 300;
				let state = type === 'show' ? 1 : 0;
				this.maskState = 2;
				setTimeout(() => {
					this.maskState = state;
				}, timer)
			},
			numberChange(data) {
				this.number = data.number;
			},
			changePayType(type) {
				this.payType = type;
			},
			async submit() {
				if (this.userId == undefined) {
					this.$api.msg('请重新登录');
					return;
				}
				let shippingMod = '';
				let tmpState = 0;
				if (this.current == 1) {
					if (Object.keys(this.addressData).length == 0) {
						uni.showToast({
							title: '请选择收货地址'
						})
						return;
					}
					if (this.isOrder == false) {
						this.$api.msg('所选商品不在您的配送范围');
						return;
					}
					shippingMod = '商家配送';
					tmpState = 2;
				} else if (this.current == 2) {
					if (this.selfUserName == '') {
						this.$api.msg('请选择提货人');
						return;
					} else if (this.selfgetAddress == '') {
						this.$api.msg('请选择提货地址');
						return;
					} else if (this.selfgetTime == '') {
						this.$api.msg('请选择提货时间');
						return;
					}
					this.addressData = {};
					this.addressData.selfUserName = this.selfUserName;
					this.addressData.selfUserMobile = this.selfUserMobile;
					this.addressData.selfgetAddress = this.selfgetAddress;
					this.addressData.selfgetAddressName = this.selfgetAddressName;
					this.addressData.selfgetTime = this.selfgetTime;
					shippingMod = '到店自提';
					tmpState = 4;

				}
				this.outTradeNo = this.randomNumber()
				const d1 = {
					outTradeNo: this.outTradeNo,
					userId: this.userId,
					selectedCoupon: this.selectedCoupon,
					discountAmount: this.discountAmount,
					addressData: this.addressData,
					desc: this.desc,
					totalExpress: this.totalExpress,
					shippingMod: shippingMod,
					pointToMoney: this.usePointToMoney,
					goodsPrice: this.goodsPrice,
					totalPrice: this.totalPrice,
					goodsData: this.goodsData,
					createtime: util.formatTimeNow(),
					timestamp: new Date().getTime()
				}
				const data = await addData(d1)
				if(this.usePointToMoney>0){
					const req2 = {
						userId: this.userId,
						date: util.formatTimeNowYMD(new Date()),
						mode: 0, // 0签到获取积分  1消费获取积分 暂时设置0
						point: Math.round(this.usePointToMoney/this.onePoint),
						state: 1, //0表示获取积分 1表示消费积分
						totalPoint: this.totalPoint,
						orderId: data.id,
						updatetime: new Date().getTime()
					}
					const data2 = await addPointListData(req2)
				}
				this.hasSubmit = true
				await reqPay(data.id,this.outTradeNo)
				this.toOrderDetail(data.id)
			},
			payOld(id) {
				let selectedProvider = ''
				new Promise((resolve, reject) => {
					uni.getProvider({
						service: 'payment',
						success(res) {
							resolve(res.provider)
						},
						fail() {
							this.toOrderDetail(id)
							reject(new Error('获取支付方式失败'))
						}
					})
				}).then((providerList) => {
					return new Promise((resolve, reject) => {
						uni.showActionSheet({
							itemList: providerList,
							success(res) {
								resolve(providerList[res.tapIndex])
							},
							fail() {
								this.toOrderDetail(id)
								reject(new Error('取消支付'))
							}
						})
					})
			
				}).then((provider) => {
					selectedProvider = provider
					return uniCloud.callFunction({
						name: 'zx-pay',
						data: {
							provider,
							outTradeNo: this.outTradeNo
						}
					})
				}).then((res) => {
					console.log(res);
					if (res.result.orderInfo) {
						return new Promise((resolve, reject) => {
							uni.requestPayment({
								// #ifdef APP-PLUS
								provider: selectedProvider,
								// #endif
								// #ifdef MP-WEIXIN
								...res.result.orderInfo,
								// #endif
								// #ifdef APP-PLUS || MP-ALIPAY
								orderInfo: res.result.orderInfo,
								// #endif
								complete() {
									resolve(res.result.outTradeNo)
								}
							})
						})
					} else {
						this.toOrderDetail(id)
						throw new Error(res.result.msg)
					}
				}).then((outTradeNo) => {
					return uniCloud.callFunction({
						name: 'zx-pay-query',
						data: {
							outTradeNo
						}
					})
				}).then((res) => {
					if (res.result.orderPaid) {
						// this.status = 2
						uni.showModal({
							content: '订单已支付',
							showCancel: false
						})
					} else {
						uni.showModal({
							content: '订单未支付',
							showCancel: false
						})
					}
					this.toOrderDetail(id)
				}).catch((err) => {
					uni.showModal({
						content: err.message || '支付失败',
						showCancel: false
					})
					this.toOrderDetail(id)
				})
			},
			stopPrevent() {},
			setTimeDateFmt(s) { // 个位数补齐十位数
				return s < 10 ? '0' + s : s;
			},
			randomNumber() {
				const now = new Date()
				let month = now.getMonth() + 1
				let day = now.getDate()
				let hour = now.getHours()
				let minutes = now.getMinutes()
				let seconds = now.getSeconds()
				month = this.setTimeDateFmt(month)
				day = this.setTimeDateFmt(day)
				hour = this.setTimeDateFmt(hour)
				minutes = this.setTimeDateFmt(minutes)
				seconds = this.setTimeDateFmt(seconds)
				let orderCode = now.getFullYear().toString() + month.toString() + day + hour + minutes + seconds + (Math.round(Math
					.random() * 1000000)).toString();
				return orderCode;
			},
			showTab(e) {
				if (e == 1) {
					this.current = 1
					this.calculateTotalPrice()
				} else {
					this.current = 2
					this.calculateTotalPrice()
				}
			},
			toSelectTime() {
				if (this.selfgetAddressName == '') {
					this.$api.msg('请先选择提货地址');
				} else {
					uni.navigateTo({
						url: '/pages/selfget/select-time?startTime=' + this.selfgetStartTime + '&endTime=' + this.selfgetEndTime +
							'&selfgetTime=' + this.selfgetTime
					})
				}

			},
			toGetUserInfo() {
				uni.navigateTo({
					url: '/pages/selfget/user-list'
				})
			},
			toGetAddress() {
				uni.navigateTo({
					url: '/pages/selfget/address-list'
				})
			},
			toOrderDetail(id) {
				uni.redirectTo({
					url: '/pages/order/order-detail?id='+id
				})
			},
			useCoupon(item) {
				this.selectedCoupon = item;

				if (item.data.type == '代金券') {
					this.discountAmount = item.data.reduceMoney
				} else {
					this.discountAmount = this.goodsPrice - this.goodsPrice * (item.data.discountLimit / 10)
				}

				this.calculateTotalPrice()
				this.toggleMask('hidden');
			},
			async toJudgeAddress(address) {
				if (this.current == 2 || address == undefined) {
					return;
				}
				
				let tmpCity = util.getArea(address).City;
				let tmpCountry = util.getArea(address).Country;
				let tmpTotalExpress = 0;
				let tmpTemplate = [];
				//运费叠加
				for (let i = 0; i < this.goodsData.length; i++) {
					if (this.goodsData[i].express!="") {
						const req = {
							id: this.goodsData[i].express
						}
						const data = await getShippingTemplateDataById(req)
						if(data.length>0)
							if(data[0].feeSetting=='统一邮费'){
								tmpTotalExpress = tmpTotalExpress + parseFloat(data[0].publicFee)
							}else{
								let tmp1 = false;
								let tmp2 = false;
								for (let j = 0; j < data.data[0].deliveryData.length; j++) {
								
									//计算地址是否有效配送
									for (let k = 0; k < data.data[0].deliveryData[j].data.length; k++) {
										if (data.data[0].deliveryData[j].data[k].name == tmpCity && data.data[0].deliveryData[j].data[k].checked == 1) {
											tmp1 = true;
										}
										if (data.data[0].deliveryData[j].data[k].name == tmpCountry && data.data[0].deliveryData[j].data[k].checked ==
											1) {
											tmp2 = true;
										}
									}
								
									//计算总运费
									//1 按个数
									if (tmp1 == true && tmp2 == true) {
										if (data.data[0].billingMode == '按个数') {
											if (tmpTemplate.indexOf(this.goodsData[data.index].expressTemSelected.id) > -1) {
												tmpTotalExpress = tmpTotalExpress + Math.ceil(this.goodsData[data.index].number / parseInt(data.data[0].deliveryData[
													j].xj)) * parseFloat(data.data[0].deliveryData[j].xf)
											} else {
												if (this.goodsData[data.index].number <= data.data[0].deliveryData[j].sj) { //说明首件满足条件了
													tmpTotalExpress = tmpTotalExpress + parseFloat(data.data[0].deliveryData[j].yf)
												} else {
													tmpTotalExpress = tmpTotalExpress + parseFloat(data.data[0].deliveryData[j].yf) + Math.ceil((this.goodsData[
															data.index].number - data.data[0].deliveryData[j].sj) / parseInt(data.data[0].deliveryData[j].xj)) *
														parseFloat(data.data[0].deliveryData[j].xf)
												}
											}
								
										}
										if (data.data[0].billingMode == '按重量') {
											if (tmpTemplate.indexOf(this.goodsData[data.index].expressTemSelected.id) > -1) {
												tmpTotalExpress = tmpTotalExpress + Math.ceil((this.goodsData[data.index].weight * this.goodsData[data.index]
													.number) / parseFloat(data.data[0].deliveryData[j].xj)) * parseFloat(data.data[0].deliveryData[j].xf)
											} else {
												if (this.goodsData[data.index].weight * this.goodsData[data.index].number <= data.data[0].deliveryData[j].sj) { //说明首件满足条件了
													tmpTotalExpress = tmpTotalExpress + parseFloat(data.data[0].deliveryData[j].yf)
												} else {
													tmpTotalExpress = tmpTotalExpress + parseFloat(data.data[0].deliveryData[j].yf) + Math.ceil((this.goodsData[
														data.index].weight * this.goodsData[data.index].number - data.data[0].deliveryData[j].sj) / parseFloat(
														data.data[0].deliveryData[j].xj)) * parseFloat(data.data[0].deliveryData[j].xf)
												}
											}
								
										}
										this.totalExpress = tmpTotalExpress;
								
										tmpTemplate.push(this.goodsData[data.index].expressTemSelected.id);
										break;
									}
								}
								if (tmp1 == false || tmp2 == false) {
									console.log(this.goodsData)
									this.isOrder = false;
									this.$api.msg(this.goodsData[data.index].title + '不在您的配送范围');
									return false;
								} else {
									this.isOrder = true;
								}
							}
					} 
				}
				if (tmpTotalExpress > 0) {
					this.showExpressValue = tmpTotalExpress + "元";
					this.totalExpress = tmpTotalExpress;
					this.calculateTotalPrice()
				} else {
					this.totalExpress = 0
					this.showExpressValue = "免运费";
				}
			},
			switchChangePoint(e) {
				this.showUsePoint = e.target.value
				if(e.target.value){
					if(this.totalPrice<this.pointToMoney){
						this.usePointToMoney=this.totalPrice
					}else{
						this.usePointToMoney=this.pointToMoney
					}
				}else{
					this.usePointToMoney = 0
				}
				this.calculateTotalPrice()
			},
			calculateTotalPrice(){
				if(this.current==1){
					this.totalPrice = this.goodsPrice - this.discountAmount + this.totalExpress - this.usePointToMoney	
				}else{
					this.totalPrice = this.goodsPrice - this.discountAmount - this.usePointToMoney
				}
				if(this.totalPrice<0){
					this.totalPrice = 0
				}
			}
		}
		
	}
</script>

<style lang="scss">
	page {
		background: $page-color-base;
		padding-bottom: 150upx;
	}

	.a-bg {
		position: absolute;
		left: 0;
		bottom: 0;
		display: block;
		width: 100%;
		height: 5upx;
	}

	.a-bg2 {
		position: absolute;
		left: 0;
		display: block;
		width: 100%;
		height: 5upx;
	}

	.address-section {
		padding: 30upx 0;
		background: #fff;
		position: relative;

		.order-content {
			display: flex;
			align-items: center;
		}

		.icon-shouhuodizhi {
			flex-shrink: 0;
			display: flex;
			align-items: center;
			justify-content: center;
			width: 90upx;
			color: #888;
			font-size: 44upx;
		}

		.cen {
			display: flex;
			flex-direction: column;
			flex: 1;
			font-size: 28upx;
			color: $font-color-dark;
		}

		.name {
			font-size: 34upx;
			margin-right: 24upx;
		}

		.address {
			margin-top: 16upx;
			margin-right: 20upx;
			color: $font-color-light;
		}

		.icon-you {
			font-size: 32upx;
			color: $font-color-light;
			margin-right: 30upx;
		}


	}

	.goods-section {
		margin-top: 16upx;
		background: #fff;
		padding-bottom: 1px;

		.g-header {
			display: flex;
			align-items: center;
			height: 84upx;
			padding: 0 30upx;
			position: relative;
		}

		.logo {
			display: block;
			width: 50upx;
			height: 50upx;
			border-radius: 100px;
		}

		.name {
			font-size: 30upx;
			color: $font-color-base;
			margin-left: 24upx;
		}

		.g-item {
			display: flex;
			margin: 20upx 30upx;

			image {
				flex-shrink: 0;
				display: block;
				width: 140upx;
				height: 140upx;
				border-radius: 4upx;
			}

			.right {
				flex: 1;
				padding-left: 24upx;
				overflow: hidden;
			}

			.title {
				font-size: 30upx;
				color: $font-color-dark;
			}

			.spec {
				font-size: 26upx;
				color: $font-color-light;
			}

			.price-box {
				display: flex;
				align-items: center;
				font-size: 32upx;
				color: $font-color-dark;
				padding-top: 10upx;

				.price {
					margin-bottom: 4upx;
				}

				.number {
					font-size: 26upx;
					color: $font-color-base;
					margin-left: 20upx;
				}
			}

			.step-box {
				position: relative;
			}
		}
	}

	.yt-list {
		margin-top: 16upx;
		background: #fff;
	}

	.yt-list-cell {
		display: flex;
		align-items: center;
		padding: 10upx 30upx 10upx 40upx;
		line-height: 70upx;
		position: relative;

		&.cell-hover {
			background: #fafafa;
		}

		&.b-b:after {
			left: 30upx;
		}

		.cell-icon {
			height: 32upx;
			width: 32upx;
			font-size: 22upx;
			color: #fff;
			text-align: center;
			line-height: 32upx;
			background: #f85e52;
			border-radius: 4upx;
			margin-right: 12upx;

			&.hb {
				background: #ffaa0e;
			}

			&.lpk {
				background: #3ab54a;
			}

		}

		.cell-more {
			align-self: center;
			font-size: 24upx;
			color: $font-color-light;
			margin-left: 8upx;
			margin-right: -10upx;
		}

		.cell-tit {
			flex: 1;
			font-size: 26upx;
			color: $font-color-light;
			margin-right: 10upx;
		}

		.cell-tip {
			font-size: 26upx;
			color: $font-color-dark;
			max-width: 200px;

			&.disabled {
				color: $font-color-light;
			}

			&.active {
				color: $base-color;
			}

			&.red {
				color: $base-color;
			}
		}

		&.desc-cell {
			.cell-tit {
				max-width: 90upx;
			}
		}

		.desc {
			flex: 1;
			font-size: $font-base;
			color: $font-color-dark;
		}
	}

	/* 支付列表 */
	.pay-list {
		padding-left: 40upx;
		margin-top: 16upx;
		background: #fff;

		.pay-item {
			display: flex;
			align-items: center;
			padding-right: 20upx;
			line-height: 1;
			height: 110upx;
			position: relative;
		}

		.icon-weixinzhifu {
			width: 80upx;
			font-size: 40upx;
			color: #6BCC03;
		}

		.icon-alipay {
			width: 80upx;
			font-size: 40upx;
			color: #06B4FD;
		}

		.icon-xuanzhong2 {
			display: flex;
			align-items: center;
			justify-content: center;
			width: 60upx;
			height: 60upx;
			font-size: 40upx;
			color: $base-color;
		}

		.tit {
			font-size: 32upx;
			color: $font-color-dark;
			flex: 1;
		}
	}

	.footer {
		position: fixed;
		left: 0;
		bottom: 0;
		z-index: 995;
		display: flex;
		align-items: center;
		width: 100%;
		height: 90upx;
		justify-content: space-between;
		font-size: 30upx;
		background-color: #fff;
		z-index: 998;
		color: $font-color-base;
		box-shadow: 0 -1px 5px rgba(0, 0, 0, .1);

		.price-content {
			padding-left: 30upx;
		}

		.price-tip {
			color: $base-color;
			margin-left: 8upx;
		}

		.price {
			font-size: 36upx;
			color: $base-color;
		}

		.submit {
			display: flex;
			align-items: center;
			justify-content: center;
			width: 280upx;
			height: 100%;
			color: #fff;
			font-size: 32upx;
			background-color: $base-color;
		}
	}

	/* 优惠券面板 */
	.mask {
		display: flex;
		align-items: flex-end;
		position: fixed;
		left: 0;
		top: var(--window-top);
		bottom: 0;
		width: 100%;
		background: rgba(0, 0, 0, 0);
		z-index: 9995;
		transition: .3s;

		.mask-content {
			width: 100%;
			min-height: 30vh;
			max-height: 70vh;
			background: #f3f3f3;
			transform: translateY(100%);
			transition: .3s;
			overflow-y: scroll;
		}

		&.none {
			display: none;
		}

		&.show {
			background: rgba(0, 0, 0, .4);

			.mask-content {
				transform: translateY(0);
			}
		}
	}

	/* 优惠券列表 */
	.coupon-item {
		display: flex;
		flex-direction: column;
		margin: 20upx 24upx;
		background: #fff;

		.con {
			display: flex;
			align-items: center;
			position: relative;
			height: 120upx;
			padding: 0 30upx;

			&:after {
				position: absolute;
				left: 0;
				bottom: 0;
				content: '';
				width: 100%;
				height: 0;
				border-bottom: 1px dashed #f3f3f3;
				transform: scaleY(50%);
			}
		}

		.left {
			display: flex;
			flex-direction: column;
			justify-content: center;
			flex: 1;
			overflow: hidden;
			height: 100upx;
		}

		.title {
			font-size: 32upx;
			color: $font-color-dark;
			margin-bottom: 10upx;
		}

		.time {
			font-size: 24upx;
			color: $font-color-light;
		}

		.right {
			display: flex;
			flex-direction: column;
			justify-content: center;
			align-items: center;
			font-size: 26upx;
			color: $font-color-base;
			height: 100upx;
		}

		.price {
			font-size: 44upx;
			color: $base-color;

			&:before {
				content: '￥';
				font-size: 34upx;
			}
		}

		.tips {
			font-size: 24upx;
			color: $font-color-light;
			line-height: 60upx;
			padding-left: 30upx;
		}

		.circle {
			position: absolute;
			left: -6upx;
			bottom: -10upx;
			z-index: 10;
			width: 20upx;
			height: 20upx;
			background: #f3f3f3;
			border-radius: 100px;

			&.r {
				left: auto;
				right: -6upx;
			}
		}
	}

	/*边框*/
	.b-b:after,
	.b-t:after {
		position: absolute;
		z-index: 3;
		left: 0;
		right: 0;
		height: 0;
		content: '';
		transform: scaleY(.5);
		border-bottom: 1px solid $border-color-base;
	}

	.b-b:after {
		bottom: 0;
	}

	.b-t:after {
		top: 0;
	}

	.content {
		text-align: center;
		height: 35px;
		background-color: #fff;
		padding-top: 10px;
		padding-bottom: 10px;
	}

	.v-content {
		border: 1px solid #FF6146;
		display: inline-block;
		height: 33px;
		width: 340rpx;
	}

	.content-text {
		color: #FF6146;
		font-size: 14px;
	}
</style>
